Se portalen for bruk og prinsipper.
Installasjon
Tips: stilpakken blir automatisk installert som en avhengighet.
npm i @fremtind/jkl-modal-react
.- Importér både React-komponent og stilark i prosjektet ditt.
import {
ModalContainer,
ModalOverlay,
Modal,
ModalHeader,
ModalTitle,
ModalCloseButton,
ModalBody,
ModalActions,
useModal,
} from "@fremtind/jkl-modal-react";
import { PrimaryButton, TertiaryButton } from "@fremtind/jkl-button-react";
import "@fremtind/jkl-modal/modal.min.css";
import "@fremtind/jkl-icon-button/icon-button.min.css";
import "@fremtind/jkl-icons/icons.min.css";
const heading = "Bekreft sletting";
const role = "dialog";
const [instance, { title, overlay, container, modal, closeButton }] = useModal({
title: heading,
role,
});
useEffect(() => {
if (!instance) {
return;
}
instance.show();
}, [instance]);
return ReactDOM.createPortal(
<ModalContainer {...container}>
<ModalOverlay {...overlay} />
<Modal {...modal}>
<ModalHeader>
<ModalTitle {...title}>{heading}</ModalTitle>
<ModalCloseButton {...closeButton} />
</ModalHeader>
<ModalBody>Er du sikker på at du vil slette Foo Bar Baz?</ModalBody>
<ModalActions>
<PrimaryButton onClick={() => instance?.hide()}>
Bekreft
</PrimaryButton>
<TertiaryButton onClick={() => instance?.hide()}>
Avbryt
</TertiaryButton>
</ModalActions>
</Modal>
</ModalContainer>,
document.body,
);
@use "@fremtind/jkl-modal/modal";
@use "@fremtind/jkl-icon-button/icon-button";
@use "@fremtind/jkl-icons/icons";